namespace devtm.Emit
{
    using System;
    

    [Serializable]
    public class LabeledStatement : Statement
    {
        private string label;
        private Statement statement;

        public LabeledStatement()
        {
        }

        public LabeledStatement(string label)
        {
            this.label = label;
        }

        public LabeledStatement(string label, Statement statement)
        {
            this.label = label;
            this.statement = statement;
        }

        public string Label
        {
            get
            {
                if (this.label != null)
                {
                    return this.label;
                }
                return string.Empty;
            }
            set
            {
                this.label = value;
            }
        }

        public Statement Statement
        {
            get
            {
                return this.statement;
            }
            set
            {
                this.statement = value;
            }
        }

        public override object Visit(Object parent, object builder)
        {
            throw new NotImplementedException();
        }
    }
}
